package com.example.zqh.service;

import com.example.zqh.model.RespBean;
import com.example.zqh.pojo.Shop;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.zqh.pojo.params.OneStringOneNumber;
import com.example.zqh.pojo.params.FourString;
import com.example.zqh.pojo.params.TwoInt;

import java.security.Principal;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zqh
 * @since 2022-09-10
 */
public interface ShopService extends IService<Shop> {


    /**
      * @Author: zqh
      * @Date:
      * @Description: 添加一个新商店
    */
    RespBean addANewStore(FourString threeString, Principal principal);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 修改店铺名
    */
    RespBean modifyTheStoreName(OneStringOneNumber oneStringOneNumber);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 修改店铺所在的位置
    */
    RespBean modifyStoreLocation(OneStringOneNumber oneStringOneNumber);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 修改店铺简介
    */
    RespBean modifyTheStoreProfile(OneStringOneNumber oneStringOneNumber);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 修改店铺星级，管理员接口
    */
    RespBean modifyStoreStarRating(TwoInt twoInt);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 店铺删除接口，需要管理员权限
    */
    RespBean storeDeleteInterface(Integer id);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 修改店铺图片
    */
    RespBean modifyTheStoreImage(OneStringOneNumber oneStringOneNumber);
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 获取所有店铺的数量，放行
    */
    RespBean getAllSp();
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 分页查询店铺
    */
    RespBean pagingQueryStore(Integer page, Integer size);


    /**
      * @Author: zqh
      * @Date:
      * @Description: 通过店铺id查询店铺
    */
    RespBean searchStoreByStoreId(Integer id);


    /**
      * @Author: zqh
      * @Date:
      * @Description: 通过星级查询店铺，分页
    */
    RespBean searchStoresByStarRating(Integer start, Integer page, Integer size);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 通过星级查询不同商店的数量
    */
    RespBean getNumberByStart(Integer start);


    /**
      * @Author: zqh
      * @Date:
      * @Description: 管理员修改商店信息接口
    */
    RespBean adminModifyStoreInformationInterface(Shop shop);
}
